package proceso.carga.pozo;

import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.List;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;


import modelo.pozo.CondicionPozo;
import modelo.pozo.PozoProduccion;

public class LectorInformacionPozoProduccion {

	private List<PozoProduccion> listaPozo;
	private String error;
	
	public List<PozoProduccion> getListaPozo() {
		return listaPozo;
	}
	public void setListaPozo(List<PozoProduccion> listaPozo) {
		this.listaPozo = listaPozo;
	}
	public String getError() {
		return error;
	}
	public void setError(String error) {
		this.error = error;
	}

	public boolean leer(String nombreArchivo, int nroHoja) {
		int idCidiat;
		String campo;
		Calendar[] fechaEvaluacion = new Calendar[15];
		
		fechaEvaluacion[0] = Calendar.getInstance();
		fechaEvaluacion[1] = Calendar.getInstance();
		fechaEvaluacion[2] = Calendar.getInstance();
		fechaEvaluacion[3] = Calendar.getInstance();
		fechaEvaluacion[4] = Calendar.getInstance();
		fechaEvaluacion[5] = Calendar.getInstance();
		fechaEvaluacion[6] = Calendar.getInstance();
		fechaEvaluacion[7] = Calendar.getInstance();
		fechaEvaluacion[8] = Calendar.getInstance();
		fechaEvaluacion[9] = Calendar.getInstance();
		fechaEvaluacion[10] = Calendar.getInstance();
		fechaEvaluacion[11] = Calendar.getInstance();
		fechaEvaluacion[12] = Calendar.getInstance();
		fechaEvaluacion[13] = Calendar.getInstance();
		fechaEvaluacion[14] = Calendar.getInstance();

		fechaEvaluacion[0].set(2001, 5, 1);
		fechaEvaluacion[1].set(2001, 11, 1);
		fechaEvaluacion[2].set(2002,4 , 1);
		fechaEvaluacion[3].set(2002, 10, 1);
		fechaEvaluacion[4].set(2003, 5, 1);
		fechaEvaluacion[5].set(2004, 7, 1);
		fechaEvaluacion[6].set(2001, 11, 1);
		fechaEvaluacion[7].set(2001, 11, 1);
		fechaEvaluacion[8].set(2001, 11, 1);
		fechaEvaluacion[9].set(2001, 11, 1);
		fechaEvaluacion[10].set(2001, 11, 1);	
		fechaEvaluacion[11].set(2007, 11, 1);
		fechaEvaluacion[12].set(2008, 8, 1);
		fechaEvaluacion[13].set(2008, 11, 1);
		fechaEvaluacion[14].set(2009, 7, 1);
		
		try{
			Workbook archivoExcel = Workbook.getWorkbook(new File(nombreArchivo));
			
			Sheet hoja = archivoExcel.getSheet(nroHoja);
			for(int i=3;i<hoja.getRows();i++){
				idCidiat = Integer.parseInt(hoja.getCell(0,i).getContents());
				for(int j=0; j<14; j++) {
					campo = hoja.getCell(j+8,i).getContents();
					if(campo.length()>2){
						CondicionPozo condicion = new CondicionPozo();
						condicion.setFechaDeCondicion(fechaEvaluacion[j]);
						campo = hoja.getCell(8+j,i).getContents();
						condicion.setRazon(campo);
						condicion.setPiezometro(false);
						condicion.setOperativo(true);
						condicion.setPozo(listaPozo.get(i-3));
						listaPozo.get(idCidiat-1).agregarCondicion(condicion);
					}
				}
				campo = hoja.getCell(23,i).getContents();
				listaPozo.get(idCidiat-1).setConPiezometro(false);
				if(campo.indexOf("si") == 0|| campo.indexOf("Si") == 0 ) {
					listaPozo.get(idCidiat-1).setOperativo(true);
				}
				else {
					listaPozo.get(idCidiat-1).setOperativo(false);
					if(campo.indexOf("piez") == 0|| campo.indexOf("Piez") == 0 ) {
						listaPozo.get(idCidiat-1).setConPiezometro(true);
					}
				}
				if(campo.indexOf("(") != -1) {
					listaPozo.get(idCidiat-1).setDescripcionEstado(campo.substring(campo.indexOf("(")+1,campo.indexOf(")")));
				}
				
			//	System.out.println("fila" + i + " campo " + campo + " Operativo" + listaPozo.get(idCidiat-1).isOperativo()  );
				
			}
			
			
		} catch (BiffException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			error = " Error en lectura";
			return false;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			error = " Archivo no encontrado";
			return false;
		}

		return true;
	}
	
}
